/*
 * PowerDownSave.h实现参数掉电保存功能
 */

#ifndef HEAD_POWERDOWNSAVE_H_
#define HEAD_POWERDOWNSAVE_H_
#include "driverlib\MSP430F5xx_6xx\driverlib.h"

//------------重要地址---------------
#define MSP430_ADDRESS_POW_DOWN_SAVE    0x1800
#define MSP430_ADDRESS_Lot_wafer_ID     0x1A0A
#define MSP430_ADDRESS_Die_X_position   0x1A0E

#define HARD_WARE_VERSION 0x2120 //硬件版本
#define FIRM_WARE_VERSION 0x1108 //固件版本

#define PDS_LEN 31
typedef struct
{
    uint16_t hardWareVersion;       //型号
    uint32_t msp430ID;              //序列号
    uint16_t firmWareVersion;       //固件版本
    uint16_t gain;                  //增益，实际值=参数/1000
    int16_t bias;                   //偏压   ，实际值=参数/100
    uint32_t visibleIntegral;       //可见光积分
    uint32_t shortwaveIntegral;     //短波积分
    uint16_t lightVoltage;          //补光灯电压
    uint8_t infoSendTime;           //定时发送信息的发送时间，单位为分钟
    uint8_t infoSendDetail;         //定时发送的信息所包含的详细内容条目
    uint8_t lowPowerEnable;         //低功耗使能标志，当电压检测低于阈值时，若该标志为高，则关断4G
    uint8_t lowPowerSleep;          //低功耗模式下休眠时间，单位分钟
    uint16_t lowPowerThreshold;     //低功耗阈值，与电源电压作比较，实际值=参数/10
    uint16_t lowPoewrCheackInterval;//电源电压检查间隔，单位秒
    uint8_t lowPowerSleepInterval;  //低功耗模式下的休眠间隔时间，单位分钟
}strPowDownSave;

strPowDownSave *pstrPDS;
strPowDownSave strPDS;

void PDS_InitStrPDS();

/*
 * @brief  写入掉电保存结构体数据
 * @param  无
 * @retval 无*/
void PDS_WriteStrPDS(strPowDownSave *newStrPDS);

#endif /* HEAD_POWERDOWNSAVE_H_ */
